package org.deng.learn.designpattern.proxy;

/**
 * @ Author: DengLibin
 * @ Description:
 * @ DateTime:  15:55 2018/5/6 0006
 * 代理模式(Proxy)，结构型设计模式。很多时候，为了节省资源或者控制对象访问，我们需要通过一个代理对象去访问指定的对象。
 * 这个代理对象，将作为真实对象的“替身”或者“占位符”，让我们在控制对象访问的同时保持对目标对象的访问的透明性。
 * 这种编程技巧在面向对象编程中有一个固定的套路和约定的名称，即为代理模式。
 *
 * Subject： 代理模式作用的目标对象的抽象。有些人把它翻译为主题，不过我认为这里翻译为主体或许更为恰当。
 * Real Subject： Subject 的具体实现。可以简单的理解为代理模式作用的目标对象对应的类。
 * Proxy： 代理对象，Real Subject 的替身。
*/
public class Main {

    public static  void main(String[] args){
        Singable singable = new SingerProxy().getSinger();
        singable.sing();
    }
}
